package com.whf.android.jar.base.mvp.model;

import com.whf.android.jar.base.delegate.IPageLoadListener;
import com.whf.android.jar.base.mvp.IModel;
import com.whf.android.jar.net.callback.IError;
import com.whf.android.jar.net.callback.ISuccess;
import com.whf.android.jar.net.utils.RestClientUtils;

import java.util.List;
import java.util.WeakHashMap;


/**
 * 默认的请求中心
 *
 * @author qf
 * @version 1.0.32
 */
public class LatteModel implements IModel {

    private final IPageLoadListener mPageLoadListener;
    private final IError mError;

    public LatteModel(IPageLoadListener listener, IError error) {
        this.mPageLoadListener = listener;
        this.mError = error;
    }

    /**
     * 数据交互,get请求
     *
     * @param url：网址
     * @param success：成功回调
     */
    public void inGet(String url, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inGet(url, success);
    }

    /**
     * 数据交互,get请求(/ids)
     *
     * @param url：网址
     * @param ids：/ids
     * @param success：成功回调
     */
    public void inGet(String url, String ids, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inGet(url, ids, success);
    }

    /**
     * 数据交互,get请求
     *
     * @param url：网址
     * @param params：map数据
     * @param success：成功回调
     */
    public void inGet(String url, WeakHashMap<String, Object> params, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inGet(url, params, success);
    }


    /**
     * 数据交互,post请求
     *
     * @param url：网址
     * @param params：map数据
     * @param success：成功回调
     */
    public void inPost(String url, Object params, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inPost(url, params, success);
    }

    /**
     * 数据交互,post请求
     *
     * @param url：网址
     * @param data：json数据
     * @param success：成功回调
     */
    public void inPost(String url, String data, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inPost(url, data, success);
    }

    /**
     * 数据交互,post请求
     *
     * @param url：网址
     * @param success：成功回调
     */
    public void inPost(String url, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inPost(url, success);
    }

    /**
     * 数据交互,put请求
     *
     * @param url：网址
     * @param data：json数据
     * @param success：成功回调
     */
    public void inPut(String url, String data, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inPut(url, data, success);
    }


    /**
     * 上传附件,post请求
     *
     * @param url：网址
     * @param data：文件数据
     * @param success：成功回调
     */
    public void inPath(String url, List<String> data, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inPath(url, data, success);
    }

    /**
     * 上传附件,post请求
     *
     * @param url：网址
     * @param data：文件数据
     * @param success：成功回调
     */
    public void inPath(String url, String data, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).inPath(url, data, success);
    }

    /**
     * 下载附件,post请求
     *
     * @param url：网址
     * @param name：文件数据
     * @param success：成功回调
     */
    public void download(String url, String name, ISuccess success) {
        RestClientUtils.create(mPageLoadListener, mError).download(url, name, success);
    }

    @Override
    public void stopRequest() {

    }
}
